ZGlmZiAtLWdpdCBhL3Rlc3RzL2NvZGVpZ25pdGVyL2NvcmUvSW5wdXRfdGVzdC5waHAgYi90ZXN0cy9jb2RlaWduaXRlci9jb3JlL0lucHV0X3Rlc3QucGhwCmluZGV4IDk1ODMzZmMuLjIxZmY2ZDggMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NvZGVpZ25pdGVyL2NvcmUvSW5wdXRfdGVzdC5waHAKKysrIGIvdGVzdHMvY29kZWlnbml0ZXIvY29yZS9JbnB1dF90ZXN0LnBocApAQCAtMTMsNiArMTMsOCBAQAogCQkkdGhpcy0+Y2lfc2V0X2NvbmZpZygnY3NyZl9wcm90ZWN0aW9uJywgRkFMU0UpOwogCiAJCSRzZWN1cml0eSA9IG5ldyBNb2NrX0NvcmVfU2VjdXJpdHkoKTsKKworCQkkdGhpcy0+Y2lfc2V0X2NvbmZpZygnY2hhcnNldCcsICdVVEYtOCcpOwogCQkkdXRmOCA9IG5ldyBNb2NrX0NvcmVfVXRmOCgpOwogCiAJCSR0aGlzLT5pbnB1dCA9IG5ldyBNb2NrX0NvcmVfSW5wdXQoJHNlY3VyaXR5LCAkdXRmOCk7CmRpZmYgLS1naXQgYS90ZXN0cy9jb2RlaWduaXRlci9jb3JlL1V0ZjhfdGVzdC5waHAgYi90ZXN0cy9jb2RlaWduaXRlci9jb3JlL1V0ZjhfdGVzdC5waHAKaW5kZXggMmNmNDA0OC4uN2U2ZmZkOSAxMDA2NDQKLS0tIGEvdGVzdHMvY29kZWlnbml0ZXIvY29yZS9VdGY4X3Rlc3QucGhwCisrKyBiL3Rlc3RzL2NvZGVpZ25pdGVyL2NvcmUvVXRmOF90ZXN0LnBocApAQCAtNCwyMiArNCw4OCBAQAogCiAJcHVibGljIGZ1bmN0aW9uIHNldF91cCgpCiAJeworCQkkdGhpcy0+Y2lfc2V0X2NvbmZpZygnY2hhcnNldCcsICdVVEYtOCcpOwogCQkkdGhpcy0+dXRmOCA9IG5ldyBNb2NrX0NvcmVfVXRmOCgpOworCQkkdGhpcy0+Y2lfaW5zdGFuY2VfdmFyKCd1dGY4JywgJHRoaXMtPnV0ZjgpOwogCX0KIAogCS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLQlwdWJsaWMgZnVuY3Rpb24gdGVzdF9jb252ZXJ0X3RvX3V0ZjgoKQorCS8qKgorCSAqIF9fY29uc3RydWN0KCkgdGVzdAorCSAqCisJICogQGNvdmVycwlDSV9VdGY4OjpfX2NvbnN0cnVjdAorCSAqLworCXB1YmxpYyBmdW5jdGlvbiB0ZXN0X19fY29uc3RydWN0KCkKIAl7Ci0JCSR0aGlzLT5hc3NlcnRFcXVhbHMoJ9GC0LXRgdGCJywgJHRoaXMtPnV0ZjgtPmNvbnZlcnRfdG9fdXRmOCgn8uXx8icsICdXSU5ET1dTLTEyNTEnKSk7CisJCWlmIChkZWZpbmVkKCdQUkVHX0JBRF9VVEY4X0VSUk9SJykgJiYgKElDT05WX0VOQUJMRUQgPT09IFRSVUUgT1IgTUJfRU5BQkxFRCA9PT0gVFJVRSkgJiYgc3RydG91cHBlcihjb25maWdfaXRlbSgnY2hhcnNldCcpKSA9PT0gJ1VURi04JykKKwkJeworCQkJJHRoaXMtPmFzc2VydFRydWUoVVRGOF9FTkFCTEVEKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCSR0aGlzLT5hc3NlcnRGYWxzZShVVEY4X0VOQUJMRUQpOworCQl9CiAJfQogCiAJLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAorCS8qKgorCSAqIGlzX2FzY2lpKCkgdGVzdAorCSAqCisJICogTm90ZTogRE8gTk9UIG1vdmUgdGhpcyBiZWxvdyB0ZXN0X2NsZWFuX3N0cmluZygpCisJICovCiAJcHVibGljIGZ1bmN0aW9uIHRlc3RfaXNfYXNjaWkoKQogCXsKIAkJJHRoaXMtPmFzc2VydFRydWUoJHRoaXMtPnV0ZjgtPmlzX2FzY2lpKCdmb28gYmFyJykpOwogCQkkdGhpcy0+YXNzZXJ0RmFsc2UoJHRoaXMtPnV0ZjgtPmlzX2FzY2lpKCfRgtC10YHRgicpKTsKIAl9CiAKKwkvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisJLyoqCisJICogY2xlYW5fc3RyaW5nKCkgdGVzdAorCSAqCisJICogQGRlcGVuZHMJdGVzdF9pc19hc2NpaQorCSAqIEBjb3ZlcnMJQ0lfVXRmODo6Y2xlYW5fc3RyaW5nCisJICovCisJcHVibGljIGZ1bmN0aW9uIHRlc3RfY2xlYW5fc3RyaW5nKCkKKwl7CisJCSR0aGlzLT5hc3NlcnRFcXVhbHMoJ2ZvbyBiYXInLCAkdGhpcy0+dXRmOC0+Y2xlYW5fc3RyaW5nKCdmb28gYmFyJykpOworCisJCSRpbGxlZ2FsX3V0ZjggPSAiXHhjMNGC0LXRgdGCIjsKKwkJaWYgKE1CX0VOQUJMRUQpCisJCXsKKwkJCSR0aGlzLT5hc3NlcnRFcXVhbHMoJ9GC0LXRgdGCJywgJHRoaXMtPnV0ZjgtPmNsZWFuX3N0cmluZygkaWxsZWdhbF91dGY4KSk7CisJCX0KKwkJZWxzZWlmIChJQ09OVl9FTkFCTEVEKQorCQl7CisJCQkvLyBUaGlzIGlzIGEga25vd24gaXNzdWUsIGljb252IGRvZXNuJ3QgYWx3YXlzIHdvcmsgd2l0aCAvL0lHTk9SRQorCQkJJHRoaXMtPmFzc2VydFRydWUoaW5fYXJyYXkoJHRoaXMtPnV0ZjgtPmNsZWFuX3N0cmluZygkaWxsZWdhbF91dGY4KSwgYXJyYXkoJ9GC0LXRgdGCJywgJycpLCBUUlVFKSk7CisJCX0KKwkJZWxzZQorCQl7CisJCQkkdGhpcy0+YXNzZXJ0RXF1YWxzKCRpbGxlZ2FsX3V0ZjgsICR0aGlzLT51dGY4LT5jbGVhbl9zdHJpbmcoJGlsbGVnYWxfdXRmOCkpOworCQl9CisJfQorCisJLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworCS8qKgorCSAqIGNvbnZlcnRfdG9fdXRmOCgpIHRlc3QKKwkgKgorCSAqIEBjb3ZlcnMJQ0lfVXRmODo6Y29udmVydF90b191dGY4CisJICovCisJcHVibGljIGZ1bmN0aW9uIHRlc3RfY29udmVydF90b191dGY4KCkKKwl7CisJCWlmIChNQl9FTkFCTEVEIE9SIElDT05WX0VOQUJMRUQpCisJCXsKKwkJCSR0aGlzLT5hc3NlcnRFcXVhbHMoJ9GC0LXRgdGCJywgJHRoaXMtPnV0ZjgtPmNvbnZlcnRfdG9fdXRmOCgn8uXx8icsICdXSU5ET1dTLTEyNTEnKSk7CisJCX0KKwkJZWxzZQorCQl7CisJCQkkdGhpcy0+YXNzZXJ0RmFsc2UoJHRoaXMtPnV0ZjgtPmNvbnZlcnRfdG9fdXRmOCgn8uXx8icsICdXSU5ET1dTLTEyNTEnKSk7CisJCX0KKwl9CisKIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90ZXN0cy9tb2Nrcy9jb3JlL3V0ZjgucGhwIGIvdGVzdHMvbW9ja3MvY29yZS91dGY4LnBocAppbmRleCBjODIxNGE2Li4zYTYyODJlIDEwMDY0NAotLS0gYS90ZXN0cy9tb2Nrcy9jb3JlL3V0ZjgucGhwCisrKyBiL3Rlc3RzL21vY2tzL2NvcmUvdXRmOC5waHAKQEAgLTUsMTIgKzUsMTUgQEAKIAkvKioKIAkgKiBXZSBuZWVkIHRvIGRlZmluZSBVVEY4X0VOQUJMRUQgdGhlIHNhbWUgd2F5IHRoYXQKIAkgKiBDSV9VdGY4IGNvbnN0cnVjdG9yIGRvZXMuCi0JICoKLQkgKiBAY292ZXJzIENJX1V0Zjg6Ol9fY29uc3RydWN0KCkKIAkgKi8KIAlwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQogCXsKLQkJZGVmaW5lZCgnVVRGOF9FTkFCTEVEJykgT1IgZGVmaW5lKCdVVEY4X0VOQUJMRUQnLCBUUlVFKTsKKwkJaWYgKGRlZmluZWQoJ1VURjhfRU5BQkxFRCcpKQorCQl7CisJCQlyZXR1cm47CisJCX0KKworCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCk7CiAJfQogCiB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=